<?php

class Users extends CI_Controller {
	
	 public function __construct(){
		parent::__construct();		
		if(!$this->session->userdata('admin'))
			redirect(base_url('admin/login'));
		$this->load->model('Users_m', 'user');		
    }
	
	function index() {
		$data = array();		
		$data['users']		= $this->user->get_all_admins();
		$data['admin']		=	$this->user->get_current_admin();
		// print_r($data['admin']);die;
		$data['main_content'] = 'admin/users';
      $this->load->view('admin/includes/template', $data);
	}
	
	function change_password(){
		$post = $this->input->post();
		// print_r($post);
		if($post){
			$this->form_validation->set_message('required', '<strong>%s</strong> cần phải nhập');
			$this->form_validation->set_message('min_length', '<strong>%s</strong> tối thiểu phải %s ký tự');
			$this->form_validation->set_message('matches', '<strong>%s</strong> nhập chưa đúng');
			$this->form_validation->set_rules('password', 'Mật khẩu', 'required|min_length[6]');
			$this->form_validation->set_rules('repassword', 'Nhập lại mật khẩu', 'required|matches[password]');
			if ($this->form_validation->run() == FALSE){
				$data['error'] = validation_errors();
				$this->session->set_flashdata('error', $data['error']);
			}else{
				$admin['password']	=	md5($post['password']);
				if($this->user->update_admin($admin))
					$this->session->set_flashdata('message', 'Cập nhật thành công');
				else
					$this->session->set_flashdata('error', 'Có lỗi xảy ra.');
			}
		}
		redirect('admin/users');
	}
	
	function form($id = ''){
		$this->load->library('form_validation');
		//set the default values
		$data['id']				= '';
		$data['ho_ten']		= '';
		$data['email']			= '';
		$data['username']		= '';
		$data['password']		= '';
		$data['role']			= '';
		$data['status']		= '';
		$data['page_title']	= 'User Form';
		$post = $this->input->post();
		$user = (array)$this->user->get_admin_user($id);
		$data = array_merge($data, $user);
		$this->form_validation->set_message('callback_check_username', '<strong>%s</strong> ');
		$this->form_validation->set_rules('ho_ten', 'Họ tên', 'trim|required');
		$this->form_validation->set_rules('email', 'Email', 'trim|required');
		if(!$user){
			$this->form_validation->set_rules('username', 'Username', 'alpha|trim|required|callback_check_username');			
			$this->form_validation->set_rules('password', 'Password', 'trim|required');
		}
		$this->form_validation->set_rules('role', 'Role', 'trim|required');
		$this->form_validation->set_rules('status', 'Status', 'trim|required');
		// Validate the form
		if($this->form_validation->run() == false){
			$data['main_content'] = 'admin/user_form';
			$this->load->view('admin/includes/template', $data);
		}
		else{
			$data = array();
			$data['ho_ten']	= 	$post['ho_ten'];
			$data['email']		=	$post['email'];
			$data['ho_ten']	= 	$post['ho_ten'];
			$data['username']	= 	$post['username'];
			if(!$user)
				$data['password']	=	md5($post['password']);
			else
				$data['id']	=	$user['id'];
			$data['role']		=	$post['role'];		
			$data['status']	=	$post['status'];
			if($this->user->save_admin_user($data))
				$this->session->set_flashdata('message', 'Cập nhật User thành công');
			else
				$this->session->set_flashdata('error', 'Có lỗi xảy ra');
			redirect('admin/users');
		}
	}
	
	function check_username($username){
		if($this->user->check_admin_username($username)){
			$this->form_validation->set_message('check_username', "<strong>Username</strong> đã tồn tại.");
			return false;
		}
		return true;
	}
	
	function delete($id){
		$user	= $this->user->get_admin_user($id);
		if($user){
			$this->user->delete_admin_user($id);
			$this->session->set_flashdata('message', 'Xóa thành công');
		}else
			$this->session->set_flashdata('error', 'Có lỗi xảy ra');
		redirect('admin/users');
	}
}